package com.hnit.web.Clients;



import com.hnit.web.Utils.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * FeignClient 接口，用于调用 'idGenerator' 微服务的 IdController API。
 */
@FeignClient(name = "idGenerator", path = "/id") // **** 这里从 "id-generator-service" 改为 "idGenerator" ****
public interface IdServiceClient {

    /**
     * 调用 /id/next, 生成一个 Id 号
     * 对应 IdController.getNextId()
     */
    @GetMapping("/next")
    ResponseResult getNextId();

    /**
     * 调用 /id/batch, 生成 size 个 Id 号
     * 对应 IdController.getBatchIds()
     * 注意：@RequestParam("size") 必须指定参数名
     */
    @GetMapping("/batch")
    ResponseResult getBatchIds(@RequestParam(value = "size", defaultValue = "10") int size);

    /**
     * 调用 /id/parse/time, 根据 Id 号解析出时间戳
     * 对应 IdController.parseTime()
     */
    @GetMapping("/parse/time")
    ResponseResult parseTime(@RequestParam("id") long id);

    /**
     * 调用 /id/parse/datacenter, 根据 Id 号解析数据中心号
     * 对应 IdController.parseDatacenter()
     */
    @GetMapping("/parse/datacenter")
    ResponseResult parseDatacenter(@RequestParam("id") long id);

    /**
     * 调用 /id/parse/worker, 根据 Id 号解析机器号
     * 对应 IdController.parseWorker()
     */
    @GetMapping("/parse/worker")
    ResponseResult parseWorker(@RequestParam("id") long id);
}